接下來這篇文章中,我們將要談談在 linux 中很常用到的ifconfig
與 traceroute
網路相關的指令,網路就是駭客的天空 ~
先來說說網路接口,常見的有 :
eth0、eth1
:以太網( Ethernet )接口,用於有線網絡連接,會根據順序增加。
wlan0、wlan1
:無線網絡接口,用於Wi-Fi連接,一樣會根據順序增加。
lo
:本地( Loopback )接口,通常表示為 lo ,用於本地主機使用,IP地址通常是 127.0.0.1。
tun0、tun1
:TUN/TAP 虛擬網絡接口,通常用於虛擬私有網絡( VPN )或其他虛擬網絡。
ppp0、ppp1
:點對點協議(PPP)接口。
docker0
:Docker 使用的虛擬以太網接口,用於容器之間的通信。
br0、br1
:橋接(Bridge)接口,用於橋接多個網絡接口,以實現網絡分段或虛擬區域網絡。
vlanX
:虛擬局域網(VLAN)接口,用於實現網絡分割和虛擬化。
然後接下來是我在某一台 k8s pod 裡面執行的結果 :
bash-5.1$ ifconfig
eth0 Link encap:Ethernet HWaddr 7E:BC:0D:5B:8F:B6
inet addr:10.3.5.3 Bcast:10.3.5.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1460 Metric:1
RX packets:8674734 errors:0 dropped:0 overruns:0 frame:0
TX packets:8253566 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5068484944 (4.7 GiB) TX bytes:3935326832 (3.6 GiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1449130 errors:0 dropped:0 overruns:0 frame:0
TX packets:1449130 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:118699320 (113.2 MiB) TX bytes:118699320 (113.2 MiB)
其中我們上面有兩個接品,分別為 eth0 以太網路與 lo 本地 lookback 接口,然後我這裡拿 eth0 來說說每個欄位的意思 :
Link encap
:這個欄位表示接口的類型,這裡為以太網( Ethernet )。
HWaddr
:這個欄位表示網絡接口的 MAC地址,是 7E:BC:0D:5B:8F:B6。
inet addr
:這個欄位表示接口的 IPv4 ,是 10.3.5.3。
Bcast
:這個欄位表示廣播地址,是 10.3.5.255。
Mask
:這個欄位表示子網遮罩,是 255.255.255.0。
UP BROADCAST RUNNING MULTICAST
:這些是接口的狀態說明,它說明接口啟用中 ( UP ),且支持廣播 ( BROADCAST ) 和多播 ( MULTICAST ) 通信。
MTU
:這個欄位表示最大傳輸單位,是封包在該接口上傳輸的最大大小。
RX packets
和 TX packets
:這些欄位分別顯示接收到和傳輸的封包數量。
RX bytes
和 TX bytes
:這些欄位分別顯示接收到和傳輸的總 byte 數。
我自已只能以概念上的來說明 :
BROADCAST : 通常在網路的世界中,一個點傳資料到一個點,並不是像快遞一樣的 1 vs 1,而且用所謂的 broadcast 擴播的方式,就是和『 每個 』子網路敲敲門,問這個資料的地址是你家的嗎 ?
MULTICAST : 又稱群播,也就是將資料傳給特定群組的,和上面的差別在於『 特定群組 』
MTU ( Maximum Transmission Unit ) 代表每個封包的最大大小,然後在網路接口代表的意思為它在這裡支援 xxx 大的,也代表上傳與下載 mtu 都是 1460,然後它有一些重點 :
當在 eth0 上傳大於 1460 byte 資料時,則會被分成 ( fragmentation ) 多個小的封包,每個封包不超過 1460 byte。
然後當被分成小封包後,接受方會需要花資源來將小封包整合。
但如果 MTU 設很大雖然在『 發出端 』與 『 接受端 』處理會比較有效率,但問題就在於 『 傳輸過程會需要較花時間與不穩 ( 往大的一個封包掉了,和小的封包一個掉了那個比較容易處理來想就可以理解了 ) 』,因此需要保持一個平衡。
上面第三點就是為什麼 eth0 為 1460,而 lo 是 65536,因為 lo 是本地接口,它在傳輸過程很穩,所以這也代表它不需要考慮太多外網的不穩定性,所以可以 MTU可以直接開大,比較有效率。
你還是別亂改好了。
異常的流量 : 剛剛上面有提到 RXBytes 與 TXByte,如果在 eth0 有大量還算正常,但是如果是在你不確定的接口呢 ? 例如 ppp0 ? 是不是怪怪 der ~
奇怪的網路接口 : 就是有個網路通道進到你的電腦,但你不知道是啥。
網路怪怪的 : 看 RX、TX 的 errors、dropped 之類的都可以知道。